package net.lzzy.practicesapi1.repositories;

import net.lzzy.practicesapi1.entities.Applicant;
import org.springframework.data.jpa.repository.JpaRepository;

import java.util.List;
import java.util.UUID;

public interface ApplicantRepository extends JpaRepository<Applicant, UUID> {
    /**
     * 查询某学生申请注册的所有课程
     * @param id 学生id
     * @return 课程申请记录
     */
    List<Applicant> findApplicantsByStudentIdEqualsOrderByApplyTimeDesc(UUID id);

    /**
     * 查询某学生申请注册的特定状态课程
     * @param id 学生id
     * @param status 课程状态（正式、申请中、申请失败）
     * @return 符合条件的课程申请记录
     */
    List<Applicant> findApplicantsByStudentIdEqualsAndStatusEqualsOrderByApplyTimeDesc(UUID id, int status);

    /**
     * 查询某课程的特定状态的申请注册记录
     * @param id 课程id
     * @param status 课程申请的状态
     * @return 符合条件的课程申请记录
     */
    List<Applicant> findApplicantsByCourseIdEqualsAndStatusEqualsOrderByApplyTimeDesc(UUID id, int status);

    /**
     * 查询某学生申请某课程记录
     * @param courseId 课程id
     * @param studentId 学生id
     * @return 课程申请记录
     */
    Applicant findApplicantByCourseIdAndStudentId(UUID courseId, UUID studentId);
}
